<?php
namespace  Backend\Model;
use Think\Model;

class AdminModel extends Model
{
    protected $insertFields = array('username','password','cpassword','status','chkcode');
    protected $updateFields = array('id','username','password','cpassword','status');
    // 添加和修改管理员时使用的规则
    protected $_validate = array(
        array('username', 'require', '用户名不能为空！', 1, 'regex', 1),
        array('username', '1,150', '用户名的值最长不能超过 150 个字符！', 1, 'length', 3),
        // 添加时生效，修改时不生效
        // 第六个参数：1：添加时生效 2：修改时生效 3：所有情况都生效
        array('password', 'require', '密码不能为空！', 1, 'regex', 1),
        array('password', '6,20', '密码必须是6-20位字符！', 1, 'length', 3),
        //array('password', 'cpassword', '两次密码不一致！', 1, 'confirm', 3),
        array('status', '正常,禁用', "状态的值只能是在 '正常,禁用' 中的一个值！", 2, 'in', 3),
        array('username', '', '用户名已经存在！', 1, 'unique', 3),
    );

    // 定义登录使用的表单验证规则
    public $_login_validate = array(
        array('username', 'require', '用户名不能为空！', 1, 'regex', 3),
        array('password', 'require', '密码不能为空！', 1, 'regex', 1),
    );
    // 登录的方法
    public function login() {
        // 从模型中获取用户名和密码
        $username = I('post.username');
        $password = I('post.password');

        //var_dump($username);exit;
        $user = $this->where(array(
            'username' => array('eq', $username),
        ))->find();
        //var_dump($user);exit;
        if($user) {
            // 判断禁用
            if($user['status'] == '正常') {
                // 判断密码
                if($user['password'] == md5($password."dsp")) {
                    // 登录成功 -> id 和 username 存到 session 中
                    session('id', $user['id']);
                    session('username', $user['username']);
                    return TRUE;
                }
                else {
                    $this->error = '密码错误！';
                    return FALSE;
                }
            }
            else {
                $this->error = '账号被禁用，不能登录！';
                return FALSE;
            }
        }
        else {
            $this->error = '账号不存在！';
            return FALSE;
        }
    }
}
